//
// Created by zhfayuan on 2021/7/2.
//

#ifndef GB28181KIT_GBGWSTREAMSOURCE_H
#define GB28181KIT_GBGWSTREAMSOURCE_H

#include "MStream.h"
class GBGwStreamSource : public MStreamSource
{
public:
    GBGwStreamSource();
    virtual ~GBGwStreamSource();
protected:
    virtual int open(const char* url, const char* params);
    virtual void close();
    virtual bool isOpen();
    virtual const char* getUrl();
    virtual bool getFormat(MFormat& fmt);
    virtual int startStream();
    virtual int pauseStream();
    virtual void stopStream();
    virtual int getState();
    virtual void setSink(MStreamSink* sink);
    virtual bool forceKeyFrame();
    virtual int getDuration();
    virtual int64_t getTime();
    virtual bool isSeekable();
    virtual int seek(int64_t pts);
    virtual int setScale(double scale);
    virtual double getScale();
    virtual int setRange(int64_t beginPts, int64_t endPts);
};
#endif //GB28181KIT_GBGWSTREAMSOURCE_H
